package dao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.criteria.CriteriaQuery;
import javax.swing.JOptionPane;

import model.Agendamento;
import util.JPAUtil;

public class AgendamentoDAO {
	
	public void insert(Agendamento agendamento) {

		EntityManager em = JPAUtil.getEntityManager();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.persist(agendamento);
		tx.commit();
		em.clear();
	}
	
	public void update(Agendamento agendamento){
		
		EntityManager em = JPAUtil.getEntityManager();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.merge(agendamento);
		tx.commit();
		em.clear();
	}
	
	public void delete(Agendamento agendamento){
		
		EntityManager em = JPAUtil.getEntityManager();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.remove(em.merge(agendamento));
		tx.commit();
		em.clear();
	}
	
	public List<Agendamento> selectAll() {
		
		EntityManager em = JPAUtil.getEntityManager();
		CriteriaQuery<Agendamento> query = em.getCriteriaBuilder().createQuery(Agendamento.class);
		query.select(query.from(Agendamento.class));

		List<Agendamento> lista = em.createQuery(query).getResultList();

		em.close();
		
		return lista;
	}
}
